#include "app_common.h"
long long app_common_getCurrentTime()
{
    struct timeval tv;
    // 获取当前时间
    gettimeofday(&tv, NULL);

    return tv.tv_sec * 1000 + tv.tv_usec / 1000;

}

char *app_common_charsToHexStr(char *chars, int chars_len)
{
    //+1的作用是为了添加\0 字符串的结束符号
    char * hex_str = (char *)malloc(chars_len * 2 + 1);
    if (hex_str == NULL)
    {
        return NULL;
    }
    for (int i = 0; i < chars_len; i++)
    {
        sprintf(hex_str + i * 2, "%02X",chars[i]);
    }
    hex_str[chars_len * 2] = '\0'; // 添加字符串结束符
    return hex_str;
}

char *app_common_hexstrToChars(char *hex_str, int *chars_len)
{
    int len = strlen(hex_str);
    if (len % 2 != 0)
    {
        log_error("十六进制字符串长度必须是偶数");        
        return NULL; // 十六进制字符串长度必须是偶数
    }
    *chars_len = len / 2;
    char *chars = (char *)malloc(*chars_len);
    if (chars == NULL)
    {
        return NULL;
    }
    for (int i = 0; i < *chars_len; i++)
    {
        sscanf(hex_str + i * 2, "%2hhx", &chars[i]);
    }
    return chars;
}
